use Test::More tests => 1+3+3+2+3;

BEGIN {	use_ok('Batch::Simple') }

use Batch::Simple;
use File::Temp;

my $ls = 'ls';
my $etc_passwd = '/etc/passwd';

my $batch = Batch::Simple->new(command => $ls, options => [ $etc_passwd ]);
my $result = $batch->run();

ok($result->stdout() eq "/etc/passwd\n", 'Testing ok stdout');
ok($result->stderr() eq '', 			 'Testing ok stderr');
ok($result->status() eq '0',			 'Testing ok status');

# Intentaremos hacer un ls sobre un fichero que no existe
my $noexiste = '/fichero/que/no/existe';
$batch = Batch::Simple->new(command => $ls, options => [ $noexiste ]);
$result = $batch->run();

ok($result->stdout() eq "",		 									  'Testing not ok stdout');
ok($result->stderr() eq "ls: $noexiste: No such file or directory\n", 'Testing not ok stderr');
ok($result->status() eq '256',										  'Testing not ok status');


# Probamos a pasarle un fichero de input
$batch = Batch::Simple->new(command => 'sort', options => [ '-n' ], input => 't/file_to_sort.txt');
$result = $batch->run();

my $sorted =<< 'EOF';
1
2
3
4
5
6
7
EOF

is($result->stdout(), $sorted, 'Probamos pasarle un fichero de input');
is($result->stderr(), '', 'Probamos pasarle un fichero de input. Stderr');


my $cadena = 'Esto es una cadena';
$batch = Batch::Simple->new(command => 'echo', options => [ '-n' ], input => \$cadena);
$result = $batch->run();

ok($result->stdout() eq $cadena,	'Probando stdout con referencia');
ok($result->stderr() eq '',			'Probando stdin con referencia');
ok($result->status() eq '0',		'Probando stderr con referencia');
